 /* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

京东云解析OpenAPI接口
京东云解析OpenAPI接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#import <Foundation/Foundation.h>
#import <JDCloudOCSDKClouddnsservice/ClouddnsserviceExecutor.h>

@implementation ClouddnsserviceClient

@synthesize userAgent = _userAgent;
@synthesize serviceName = _serviceName;
@synthesize version = _version;

-(void) addCustomerHeaderWithKey:(NSString*) key
                           value:(NSString*) value{
    if(![self customHeader])
    {
        self.customHeader = [[NSMutableDictionary alloc] init];
    }
    if(key && value)
    {
        [[self customHeader] setValue:value forKey:key];
    }
   
}

-(id)initWithGlobalConfig{
    if(![GlobalConfig credential])
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@"GlobalConfig credential not config" userInfo:nil];
        @throw e;
    }
    self.credential = [GlobalConfig credential];
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"clouddnsservice.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 clouddnsservice  v1";
    _serviceName = @"clouddnsservice";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
         sdkEnvironment:(SDKEnvironment*)sdkEnvironment
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    
    if(!sdkEnvironment)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" sdkEnvironment can not null" userInfo:nil];
        @throw e;
    }else{
        self.sdkEnvironment = sdkEnvironment;
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 clouddnsservice  v1";
    _serviceName = @"clouddnsservice";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"clouddnsservice.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 clouddnsservice  v1";
    _serviceName = @"clouddnsservice";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)init{
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 clouddnsservice  v1";
    _serviceName = @"clouddnsservice";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}


/**
delDomain sync request
@param delDomainRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `delDomainResponse` the request response data model
*/
-(NSDictionary*) delDomainSyncWithRequest:(ClouddnsserviceDelDomainRequest*) delDomainRequest
{
ClouddnsserviceDelDomainExecutor* excutor = [[ClouddnsserviceDelDomainExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:delDomainRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceDelDomainResponse* response = [[ClouddnsserviceDelDomainResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"delDomainResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)delDomainAsyncWithRequest:(ClouddnsserviceDelDomainRequest*) delDomainRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceDelDomainResponse* _Nullable delDomainResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceDelDomainExecutor* excutor = [[ClouddnsserviceDelDomainExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:delDomainRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceDelDomainResponse* response = [[ClouddnsserviceDelDomainResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getDomainQueryCount sync request
@param getDomainQueryCountRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getDomainQueryCountResponse` the request response data model
*/
-(NSDictionary*) getDomainQueryCountSyncWithRequest:(ClouddnsserviceGetDomainQueryCountRequest*) getDomainQueryCountRequest
{
ClouddnsserviceGetDomainQueryCountExecutor* excutor = [[ClouddnsserviceGetDomainQueryCountExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getDomainQueryCountRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetDomainQueryCountResponse* response = [[ClouddnsserviceGetDomainQueryCountResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getDomainQueryCountResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getDomainQueryCountAsyncWithRequest:(ClouddnsserviceGetDomainQueryCountRequest*) getDomainQueryCountRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetDomainQueryCountResponse* _Nullable getDomainQueryCountResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetDomainQueryCountExecutor* excutor = [[ClouddnsserviceGetDomainQueryCountExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getDomainQueryCountRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetDomainQueryCountResponse* response = [[ClouddnsserviceGetDomainQueryCountResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
batchSetDnsResolve sync request
@param batchSetDnsResolveRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `batchSetDnsResolveResponse` the request response data model
*/
-(NSDictionary*) batchSetDnsResolveSyncWithRequest:(ClouddnsserviceBatchSetDnsResolveRequest*) batchSetDnsResolveRequest
{
ClouddnsserviceBatchSetDnsResolveExecutor* excutor = [[ClouddnsserviceBatchSetDnsResolveExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:batchSetDnsResolveRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceBatchSetDnsResolveResponse* response = [[ClouddnsserviceBatchSetDnsResolveResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"batchSetDnsResolveResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)batchSetDnsResolveAsyncWithRequest:(ClouddnsserviceBatchSetDnsResolveRequest*) batchSetDnsResolveRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceBatchSetDnsResolveResponse* _Nullable batchSetDnsResolveResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceBatchSetDnsResolveExecutor* excutor = [[ClouddnsserviceBatchSetDnsResolveExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:batchSetDnsResolveRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceBatchSetDnsResolveResponse* response = [[ClouddnsserviceBatchSetDnsResolveResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getActionLog sync request
@param getActionLogRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getActionLogResponse` the request response data model
*/
-(NSDictionary*) getActionLogSyncWithRequest:(ClouddnsserviceGetActionLogRequest*) getActionLogRequest
{
ClouddnsserviceGetActionLogExecutor* excutor = [[ClouddnsserviceGetActionLogExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getActionLogRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetActionLogResponse* response = [[ClouddnsserviceGetActionLogResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getActionLogResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getActionLogAsyncWithRequest:(ClouddnsserviceGetActionLogRequest*) getActionLogRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetActionLogResponse* _Nullable getActionLogResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetActionLogExecutor* excutor = [[ClouddnsserviceGetActionLogExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getActionLogRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetActionLogResponse* response = [[ClouddnsserviceGetActionLogResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getDomainQueryTraffic sync request
@param getDomainQueryTrafficRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getDomainQueryTrafficResponse` the request response data model
*/
-(NSDictionary*) getDomainQueryTrafficSyncWithRequest:(ClouddnsserviceGetDomainQueryTrafficRequest*) getDomainQueryTrafficRequest
{
ClouddnsserviceGetDomainQueryTrafficExecutor* excutor = [[ClouddnsserviceGetDomainQueryTrafficExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getDomainQueryTrafficRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetDomainQueryTrafficResponse* response = [[ClouddnsserviceGetDomainQueryTrafficResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getDomainQueryTrafficResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getDomainQueryTrafficAsyncWithRequest:(ClouddnsserviceGetDomainQueryTrafficRequest*) getDomainQueryTrafficRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetDomainQueryTrafficResponse* _Nullable getDomainQueryTrafficResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetDomainQueryTrafficExecutor* excutor = [[ClouddnsserviceGetDomainQueryTrafficExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getDomainQueryTrafficRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetDomainQueryTrafficResponse* response = [[ClouddnsserviceGetDomainQueryTrafficResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
operateMonitor sync request
@param operateMonitorRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `operateMonitorResponse` the request response data model
*/
-(NSDictionary*) operateMonitorSyncWithRequest:(ClouddnsserviceOperateMonitorRequest*) operateMonitorRequest
{
ClouddnsserviceOperateMonitorExecutor* excutor = [[ClouddnsserviceOperateMonitorExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:operateMonitorRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceOperateMonitorResponse* response = [[ClouddnsserviceOperateMonitorResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"operateMonitorResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)operateMonitorAsyncWithRequest:(ClouddnsserviceOperateMonitorRequest*) operateMonitorRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceOperateMonitorResponse* _Nullable operateMonitorResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceOperateMonitorExecutor* excutor = [[ClouddnsserviceOperateMonitorExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:operateMonitorRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceOperateMonitorResponse* response = [[ClouddnsserviceOperateMonitorResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
addUserViewIP sync request
@param addUserViewIPRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addUserViewIPResponse` the request response data model
*/
-(NSDictionary*) addUserViewIPSyncWithRequest:(ClouddnsserviceAddUserViewIPRequest*) addUserViewIPRequest
{
ClouddnsserviceAddUserViewIPExecutor* excutor = [[ClouddnsserviceAddUserViewIPExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:addUserViewIPRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddUserViewIPResponse* response = [[ClouddnsserviceAddUserViewIPResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"addUserViewIPResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)addUserViewIPAsyncWithRequest:(ClouddnsserviceAddUserViewIPRequest*) addUserViewIPRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceAddUserViewIPResponse* _Nullable addUserViewIPResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceAddUserViewIPExecutor* excutor = [[ClouddnsserviceAddUserViewIPExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:addUserViewIPRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddUserViewIPResponse* response = [[ClouddnsserviceAddUserViewIPResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
addMonitorTarget sync request
@param addMonitorTargetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addMonitorTargetResponse` the request response data model
*/
-(NSDictionary*) addMonitorTargetSyncWithRequest:(ClouddnsserviceAddMonitorTargetRequest*) addMonitorTargetRequest
{
ClouddnsserviceAddMonitorTargetExecutor* excutor = [[ClouddnsserviceAddMonitorTargetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:addMonitorTargetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddMonitorTargetResponse* response = [[ClouddnsserviceAddMonitorTargetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"addMonitorTargetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)addMonitorTargetAsyncWithRequest:(ClouddnsserviceAddMonitorTargetRequest*) addMonitorTargetRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceAddMonitorTargetResponse* _Nullable addMonitorTargetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceAddMonitorTargetExecutor* excutor = [[ClouddnsserviceAddMonitorTargetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:addMonitorTargetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddMonitorTargetResponse* response = [[ClouddnsserviceAddMonitorTargetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
addRR sync request
@param addRRRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addRRResponse` the request response data model
*/
-(NSDictionary*) addRRSyncWithRequest:(ClouddnsserviceAddRRRequest*) addRRRequest
{
ClouddnsserviceAddRRExecutor* excutor = [[ClouddnsserviceAddRRExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:addRRRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddRRResponse* response = [[ClouddnsserviceAddRRResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"addRRResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)addRRAsyncWithRequest:(ClouddnsserviceAddRRRequest*) addRRRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceAddRRResponse* _Nullable addRRResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceAddRRExecutor* excutor = [[ClouddnsserviceAddRRExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:addRRRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddRRResponse* response = [[ClouddnsserviceAddRRResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
delUserView sync request
@param delUserViewRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `delUserViewResponse` the request response data model
*/
-(NSDictionary*) delUserViewSyncWithRequest:(ClouddnsserviceDelUserViewRequest*) delUserViewRequest
{
ClouddnsserviceDelUserViewExecutor* excutor = [[ClouddnsserviceDelUserViewExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:delUserViewRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceDelUserViewResponse* response = [[ClouddnsserviceDelUserViewResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"delUserViewResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)delUserViewAsyncWithRequest:(ClouddnsserviceDelUserViewRequest*) delUserViewRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceDelUserViewResponse* _Nullable delUserViewResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceDelUserViewExecutor* excutor = [[ClouddnsserviceDelUserViewExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:delUserViewRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceDelUserViewResponse* response = [[ClouddnsserviceDelUserViewResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
operateRR sync request
@param operateRRRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `operateRRResponse` the request response data model
*/
-(NSDictionary*) operateRRSyncWithRequest:(ClouddnsserviceOperateRRRequest*) operateRRRequest
{
ClouddnsserviceOperateRRExecutor* excutor = [[ClouddnsserviceOperateRRExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:operateRRRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceOperateRRResponse* response = [[ClouddnsserviceOperateRRResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"operateRRResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)operateRRAsyncWithRequest:(ClouddnsserviceOperateRRRequest*) operateRRRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceOperateRRResponse* _Nullable operateRRResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceOperateRRExecutor* excutor = [[ClouddnsserviceOperateRRExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:operateRRRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceOperateRRResponse* response = [[ClouddnsserviceOperateRRResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
delUserViewIP sync request
@param delUserViewIPRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `delUserViewIPResponse` the request response data model
*/
-(NSDictionary*) delUserViewIPSyncWithRequest:(ClouddnsserviceDelUserViewIPRequest*) delUserViewIPRequest
{
ClouddnsserviceDelUserViewIPExecutor* excutor = [[ClouddnsserviceDelUserViewIPExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:delUserViewIPRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceDelUserViewIPResponse* response = [[ClouddnsserviceDelUserViewIPResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"delUserViewIPResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)delUserViewIPAsyncWithRequest:(ClouddnsserviceDelUserViewIPRequest*) delUserViewIPRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceDelUserViewIPResponse* _Nullable delUserViewIPResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceDelUserViewIPExecutor* excutor = [[ClouddnsserviceDelUserViewIPExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:delUserViewIPRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceDelUserViewIPResponse* response = [[ClouddnsserviceDelUserViewIPResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getMonitor sync request
@param getMonitorRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getMonitorResponse` the request response data model
*/
-(NSDictionary*) getMonitorSyncWithRequest:(ClouddnsserviceGetMonitorRequest*) getMonitorRequest
{
ClouddnsserviceGetMonitorExecutor* excutor = [[ClouddnsserviceGetMonitorExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getMonitorRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetMonitorResponse* response = [[ClouddnsserviceGetMonitorResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getMonitorResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getMonitorAsyncWithRequest:(ClouddnsserviceGetMonitorRequest*) getMonitorRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetMonitorResponse* _Nullable getMonitorResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetMonitorExecutor* excutor = [[ClouddnsserviceGetMonitorExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getMonitorRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetMonitorResponse* response = [[ClouddnsserviceGetMonitorResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
updateMonitor sync request
@param updateMonitorRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateMonitorResponse` the request response data model
*/
-(NSDictionary*) updateMonitorSyncWithRequest:(ClouddnsserviceUpdateMonitorRequest*) updateMonitorRequest
{
ClouddnsserviceUpdateMonitorExecutor* excutor = [[ClouddnsserviceUpdateMonitorExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:updateMonitorRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceUpdateMonitorResponse* response = [[ClouddnsserviceUpdateMonitorResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"updateMonitorResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)updateMonitorAsyncWithRequest:(ClouddnsserviceUpdateMonitorRequest*) updateMonitorRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceUpdateMonitorResponse* _Nullable updateMonitorResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceUpdateMonitorExecutor* excutor = [[ClouddnsserviceUpdateMonitorExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:updateMonitorRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceUpdateMonitorResponse* response = [[ClouddnsserviceUpdateMonitorResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getUserViewIP sync request
@param getUserViewIPRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getUserViewIPResponse` the request response data model
*/
-(NSDictionary*) getUserViewIPSyncWithRequest:(ClouddnsserviceGetUserViewIPRequest*) getUserViewIPRequest
{
ClouddnsserviceGetUserViewIPExecutor* excutor = [[ClouddnsserviceGetUserViewIPExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getUserViewIPRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetUserViewIPResponse* response = [[ClouddnsserviceGetUserViewIPResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getUserViewIPResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getUserViewIPAsyncWithRequest:(ClouddnsserviceGetUserViewIPRequest*) getUserViewIPRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetUserViewIPResponse* _Nullable getUserViewIPResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetUserViewIPExecutor* excutor = [[ClouddnsserviceGetUserViewIPExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getUserViewIPRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetUserViewIPResponse* response = [[ClouddnsserviceGetUserViewIPResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getTargets sync request
@param getTargetsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getTargetsResponse` the request response data model
*/
-(NSDictionary*) getTargetsSyncWithRequest:(ClouddnsserviceGetTargetsRequest*) getTargetsRequest
{
ClouddnsserviceGetTargetsExecutor* excutor = [[ClouddnsserviceGetTargetsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getTargetsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetTargetsResponse* response = [[ClouddnsserviceGetTargetsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getTargetsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getTargetsAsyncWithRequest:(ClouddnsserviceGetTargetsRequest*) getTargetsRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetTargetsResponse* _Nullable getTargetsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetTargetsExecutor* excutor = [[ClouddnsserviceGetTargetsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getTargetsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetTargetsResponse* response = [[ClouddnsserviceGetTargetsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getMonitorAlarmInfo sync request
@param getMonitorAlarmInfoRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getMonitorAlarmInfoResponse` the request response data model
*/
-(NSDictionary*) getMonitorAlarmInfoSyncWithRequest:(ClouddnsserviceGetMonitorAlarmInfoRequest*) getMonitorAlarmInfoRequest
{
ClouddnsserviceGetMonitorAlarmInfoExecutor* excutor = [[ClouddnsserviceGetMonitorAlarmInfoExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getMonitorAlarmInfoRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetMonitorAlarmInfoResponse* response = [[ClouddnsserviceGetMonitorAlarmInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getMonitorAlarmInfoResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getMonitorAlarmInfoAsyncWithRequest:(ClouddnsserviceGetMonitorAlarmInfoRequest*) getMonitorAlarmInfoRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetMonitorAlarmInfoResponse* _Nullable getMonitorAlarmInfoResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetMonitorAlarmInfoExecutor* excutor = [[ClouddnsserviceGetMonitorAlarmInfoExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getMonitorAlarmInfoRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetMonitorAlarmInfoResponse* response = [[ClouddnsserviceGetMonitorAlarmInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
addMonitor sync request
@param addMonitorRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addMonitorResponse` the request response data model
*/
-(NSDictionary*) addMonitorSyncWithRequest:(ClouddnsserviceAddMonitorRequest*) addMonitorRequest
{
ClouddnsserviceAddMonitorExecutor* excutor = [[ClouddnsserviceAddMonitorExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:addMonitorRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddMonitorResponse* response = [[ClouddnsserviceAddMonitorResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"addMonitorResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)addMonitorAsyncWithRequest:(ClouddnsserviceAddMonitorRequest*) addMonitorRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceAddMonitorResponse* _Nullable addMonitorResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceAddMonitorExecutor* excutor = [[ClouddnsserviceAddMonitorExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:addMonitorRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddMonitorResponse* response = [[ClouddnsserviceAddMonitorResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
updateDomain sync request
@param updateDomainRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateDomainResponse` the request response data model
*/
-(NSDictionary*) updateDomainSyncWithRequest:(ClouddnsserviceUpdateDomainRequest*) updateDomainRequest
{
ClouddnsserviceUpdateDomainExecutor* excutor = [[ClouddnsserviceUpdateDomainExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:updateDomainRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceUpdateDomainResponse* response = [[ClouddnsserviceUpdateDomainResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"updateDomainResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)updateDomainAsyncWithRequest:(ClouddnsserviceUpdateDomainRequest*) updateDomainRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceUpdateDomainResponse* _Nullable updateDomainResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceUpdateDomainExecutor* excutor = [[ClouddnsserviceUpdateDomainExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:updateDomainRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceUpdateDomainResponse* response = [[ClouddnsserviceUpdateDomainResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
updateRR sync request
@param updateRRRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updateRRResponse` the request response data model
*/
-(NSDictionary*) updateRRSyncWithRequest:(ClouddnsserviceUpdateRRRequest*) updateRRRequest
{
ClouddnsserviceUpdateRRExecutor* excutor = [[ClouddnsserviceUpdateRRExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:updateRRRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceUpdateRRResponse* response = [[ClouddnsserviceUpdateRRResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"updateRRResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)updateRRAsyncWithRequest:(ClouddnsserviceUpdateRRRequest*) updateRRRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceUpdateRRResponse* _Nullable updateRRResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceUpdateRRExecutor* excutor = [[ClouddnsserviceUpdateRRExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:updateRRRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceUpdateRRResponse* response = [[ClouddnsserviceUpdateRRResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
addUserView sync request
@param addUserViewRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addUserViewResponse` the request response data model
*/
-(NSDictionary*) addUserViewSyncWithRequest:(ClouddnsserviceAddUserViewRequest*) addUserViewRequest
{
ClouddnsserviceAddUserViewExecutor* excutor = [[ClouddnsserviceAddUserViewExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:addUserViewRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddUserViewResponse* response = [[ClouddnsserviceAddUserViewResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"addUserViewResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)addUserViewAsyncWithRequest:(ClouddnsserviceAddUserViewRequest*) addUserViewRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceAddUserViewResponse* _Nullable addUserViewResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceAddUserViewExecutor* excutor = [[ClouddnsserviceAddUserViewExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:addUserViewRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddUserViewResponse* response = [[ClouddnsserviceAddUserViewResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
searchRR sync request
@param searchRRRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `searchRRResponse` the request response data model
*/
-(NSDictionary*) searchRRSyncWithRequest:(ClouddnsserviceSearchRRRequest*) searchRRRequest
{
ClouddnsserviceSearchRRExecutor* excutor = [[ClouddnsserviceSearchRRExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:searchRRRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceSearchRRResponse* response = [[ClouddnsserviceSearchRRResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"searchRRResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)searchRRAsyncWithRequest:(ClouddnsserviceSearchRRRequest*) searchRRRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceSearchRRResponse* _Nullable searchRRResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceSearchRRExecutor* excutor = [[ClouddnsserviceSearchRRExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:searchRRRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceSearchRRResponse* response = [[ClouddnsserviceSearchRRResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getUserView sync request
@param getUserViewRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getUserViewResponse` the request response data model
*/
-(NSDictionary*) getUserViewSyncWithRequest:(ClouddnsserviceGetUserViewRequest*) getUserViewRequest
{
ClouddnsserviceGetUserViewExecutor* excutor = [[ClouddnsserviceGetUserViewExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getUserViewRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetUserViewResponse* response = [[ClouddnsserviceGetUserViewResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getUserViewResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getUserViewAsyncWithRequest:(ClouddnsserviceGetUserViewRequest*) getUserViewRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetUserViewResponse* _Nullable getUserViewResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetUserViewExecutor* excutor = [[ClouddnsserviceGetUserViewExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getUserViewRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetUserViewResponse* response = [[ClouddnsserviceGetUserViewResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getDomains sync request
@param getDomainsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getDomainsResponse` the request response data model
*/
-(NSDictionary*) getDomainsSyncWithRequest:(ClouddnsserviceGetDomainsRequest*) getDomainsRequest
{
ClouddnsserviceGetDomainsExecutor* excutor = [[ClouddnsserviceGetDomainsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getDomainsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetDomainsResponse* response = [[ClouddnsserviceGetDomainsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getDomainsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getDomainsAsyncWithRequest:(ClouddnsserviceGetDomainsRequest*) getDomainsRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetDomainsResponse* _Nullable getDomainsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetDomainsExecutor* excutor = [[ClouddnsserviceGetDomainsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getDomainsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetDomainsResponse* response = [[ClouddnsserviceGetDomainsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
addDomain sync request
@param addDomainRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addDomainResponse` the request response data model
*/
-(NSDictionary*) addDomainSyncWithRequest:(ClouddnsserviceAddDomainRequest*) addDomainRequest
{
ClouddnsserviceAddDomainExecutor* excutor = [[ClouddnsserviceAddDomainExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:addDomainRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddDomainResponse* response = [[ClouddnsserviceAddDomainResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"addDomainResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)addDomainAsyncWithRequest:(ClouddnsserviceAddDomainRequest*) addDomainRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceAddDomainResponse* _Nullable addDomainResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceAddDomainExecutor* excutor = [[ClouddnsserviceAddDomainExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:addDomainRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceAddDomainResponse* response = [[ClouddnsserviceAddDomainResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
getViewTree sync request
@param getViewTreeRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getViewTreeResponse` the request response data model
*/
-(NSDictionary*) getViewTreeSyncWithRequest:(ClouddnsserviceGetViewTreeRequest*) getViewTreeRequest
{
ClouddnsserviceGetViewTreeExecutor* excutor = [[ClouddnsserviceGetViewTreeExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:getViewTreeRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetViewTreeResponse* response = [[ClouddnsserviceGetViewTreeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"getViewTreeResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)getViewTreeAsyncWithRequest:(ClouddnsserviceGetViewTreeRequest*) getViewTreeRequest
                       completionHandler:(void(^)(int statusCode,ClouddnsserviceGetViewTreeResponse* _Nullable getViewTreeResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
ClouddnsserviceGetViewTreeExecutor* excutor = [[ClouddnsserviceGetViewTreeExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:getViewTreeRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    ClouddnsserviceGetViewTreeResponse* response = [[ClouddnsserviceGetViewTreeResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}


 /**
 clouddnsservice common sync request
 @param  jdcloudDataRequest request param
 @return key `statusCode` http request status code type is int
             `dataResult` the http request response data  type is NSData
             `requestError` the request error type is NSError
 */
 -(NSDictionary*) clouddnsserviceCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                                   url:(NSString*) url
                                                method:(NSString*) method{
    CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    NSDictionary* responseResult = [excutor executeDataSync:jdcloudDataRequest];
    return responseResult;
}

-(void)clouddnsserviceCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                         url:(NSString*) url
                                      method:(NSString*) method
                           completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
     CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    
    [excutor executeDataAsync:jdcloudDataRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        completionHandler(statusCode,responseData,error);
    }];
} 

@end
